The present invention relates generally to the field of electronic devices, and more particularly to techniques for upgrading or otherwise reconfiguring software and/or hardware components in such devices.
For many different electronic devices, such as desktop, laptop and palmtop computers, personal digital assistants (PDAs), telephones, televisions, set-top boxes and other consumer electronic processing devices, it is common for ongoing development efforts to continue to produce improvements to existing device software or hardware components, as well as new components that add to or otherwise improve device functionality. Users of such devices often prefer to upgrade their devices, incrementally, rather than discard their current devices and purchase new ones. However, for most contemplated upgrades, it is generally necessary to determine if the new or improved component is compatible with the rest of the device, and if not, what other components would need simultaneous upgrading in order to provide the desired compatibility. This compatibility determination can be particularly difficult if the range of possible device configurations is large and the interaction among device components is complex.
A number of different techniques have been developed for updating components of electronic devices. For example, U.S. Pat. No. 5,155,847 discloses a technique for updating software at remote locations. A central computer system stores the original software, and keeps track of all the software configurations for a number of remote systems. The remote system software is upgraded or otherwise changed based on patches transmitted by the central computer system. However, this technique generally requires the central computer system to keep track of the particular software configurations at each of the remote systems. Furthermore, the technique is not directly applicable to electronic devices other than computers, and cannot efficiently handle reconfiguration of hardware components, or hardware and software interdependencies.
Another conventional technique, described in PCT Application No. WO 94/25923, manages the configuration of an enterprise-wide network which includes at least one centralized computer and a plurality of desktop computers. The technique attempts to ensure that each of the desktop computers has an appropriate set of resources as determined in accordance with a set of enterprise policies. However, the technique generally assumes that the resources required by each desktop computer are independent, and fails to adequately address situations in which the required resources are highly interdependent. Furthermore, this technique generally assumes that the information regarding component interactions is fully specified and built in to the system.
UK Patent Application No. GB 2,325,766 discloses a version management system for keeping files on remote devices updated to latest versions as determined by a master list maintained on a central server. The updating process in this approach generally involves adding, amending and deleting files in their entirety. A significant problem with this approach is that it apparently assumes either that the files are independent or that any potential conflicting requirements have already been resolved using other techniques. It fails to provide generalized techniques for ensuring compatibility among requested components.
A convention technique disclosed in PCT Application No. WO 96/32679 describes the remote patching of operating code in a mobile unit of a distributed system. A manager host device in the system transmits patches to the mobile unit, and the mobile unit creates patched operating code by merging the patches with current operating code and switching execution to the patched operating code. However, like the other conventional techniques described previously, this technique also fails to adequately ensure compatibility among software and hardware components for a variety of different electronic devices.
As is apparent from the above, a need exists for improved techniques for managing reconfiguration of electronic devices, such that compatibility determinations can be facilitated, particularly for large and complex device configurations.
The invention provides a reconfiguration manager that may be implemented on a computer or other data processing device to control the reconfiguration of software or other components of an electronic device such as a computer, personal digital assistant (PDA), set-top box, television, etc. In accordance with the invention, a reconfiguration manager receives a reconfiguration request, e.g., a software upgrade request from the electronic device, and determines one or more device components that are required to implement the reconfiguration request. The reconfiguration request can be received directly from the electronic device itself, or otherwise supplied to the reconfiguration manager.
The reconfiguration manager also determines, e.g., from information supplied by the electronic device as part of the request, identifiers of one or more additional components currently implemented in the electronic device. The reconfiguration manager then compares the needed and currently implemented components with previously-stored lists of known acceptable and unacceptable configurations for the electronic device. If the needed and currently implemented components correspond to a configuration on the list of acceptable configurations, the request is approved and the needed components are downloaded or otherwise supplied to the electronic device. If the needed and currently implemented components correspond to a configuration on the list of unacceptable configurations, the request is denied. Otherwise, the reconfiguration manager may indicate that the requested reconfiguration is unknown, or may take another action such as responding to the electronic device with a list of other components that would be required to implement the reconfiguration request.
Advantageously, the invention provides efficient techniques for incrementally upgrading or otherwise reconfiguring electronic devices. The invention ensures that upgrades are compatible with the configuration of a given device before they are implemented in that device, thereby avoiding problems associated with inconsistent upgrades. Although particularly well suited for use with software upgrades delivered over a network, the invention is applicable to reconfiguration of other types of device components, e.g., hardware components or combinations of hardware and software components, and to numerous other applications. These and other features and advantages of the present invention will become more apparent from the accompanying drawings and the following detailed description.